import java.util.Arrays;
import java.util.Locale;
import java.util.Scanner;

public class HumpMain {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        int len=str.length();
        int[] numberArr = new int[len];
        int index=0;
        for (int i=0;i< numberArr.length;i++){
            index = gain(str,index);
            str.substring(index+1);
            if (index >= 0) {
                numberArr[i]=index;
            }else {
                break;
            }
        }
        str.split("");
        str = str.toLowerCase(Locale.ROOT);
        str = add(str, numberArr);
        System.out.println(str);
    }

    //获取字符下标
    public static int gain(String str,int index) {
        for (int i = index+1; i < str.length(); i++) {
            if (str.charAt(i) <= 'Z') {
                return i;
            }
        }
        return -1;
    }

    //添加下横杠
    public static String add(String str, int []numberArr) {
        String s = "";
        int num=-1;
        for (int i = 0; i < numberArr.length; i++) {
            if (numberArr[i]>0){
                for (int j=num+1;j<str.length();j++){
                    if (numberArr[i] != j) {
                        s += str.charAt(j);
                    } else {
                        s += "_" + str.charAt(j);
                        num=j;
                        break;
                    }
                }
            }
        }
        for (int f=num+1;f<str.length();f++){
            s += str.charAt(f);
        }
        return s;
    }
}
